#include <REGX52.H>
#include "type.h"

extern time clock;
extern time alarm;

// 闹钟响起标志位 —— 置位闹钟响起
unsigned char alarming = 0;

// 判断此时闹钟是否该响起
void judge_alarm(){
	time* t1 = &clock;
	time* t2 = &alarm;
	// 如果时钟闹钟时、分都相等则闹钟响起标志位置位
	alarming = ((t1->h == t2->h) && (t1->min == t2->min)) ? 1 : 0; 
}

// 进位函数 用于各位之间的进位
void CF(time* t){
	time* p = t;
	// 10毫秒满100秒进1
	if(p->ms_10 >= 100 ){
		p->ms_10 -= 100;
		(p->s)++;
	}
	// 秒满60分进1
	if(p->s >= 60){
		p->s = 0;
		p->min++;
	}
	// 分满60时进1
	if(p->min >= 60){
		p->min = 0;
		p->h++;
	}
	if(p->h >= 24){
		p->h = 0;
	}
}

// 不进位函数 只用于某位内的循环
void NCF(time* t){
	time* p = t;
	// 毫秒满100秒进1
	if(p->ms_10 >= 100 ){
		p->ms_10 -= 100;         
	}
	// 秒满60分进1
	if(p->s >= 60){
		p->s = 0;
	}
	// 分满60时进1
	if(p->min >= 60){
		p->min = 0;
	}
	if(p->h >= 24){
		p->h = 0;
	}
}

